package com.shift.sdk;

import com.shift.ccsdk.CCSDK;
import com.shift.ccsdk.CCSDKCallback;
import com.shift.ccsdk.CCServiceInstallActivity;
import com.shift.sdk.dialog.LoginDialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.widget.Toast;

public class ValidateActivity extends Activity implements CCSDKCallback{
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		// エンジンバージョン番号を出力
        Log.i("CCSDK", "CCSDK for Android ver." + CCSDK.getCCSDKVersion());

        SharedPreferences pref = this.getApplicationContext().getSharedPreferences("SDKSample1",
                Context.MODE_PRIVATE);
        // ライセンス認証が実施されているか
        if (pref.getBoolean("Activation", false))
        {
            // CCSDK開始処理
            if (CCSDK.startup(getApplicationContext(), this)) {
                // 認証済みの場合は設定を保存する。
                Editor prefedit = pref.edit();
                prefedit.putBoolean("Activation", true);
                prefedit.commit();
                return;
            }
        }else{
        	initView();
        }
        
        CCSDK.setProxyAddressPort(getApplicationContext(),
                "",
                "");
        Intent intent = new Intent(this, CCServiceInstallActivity.class);
        startActivityForResult(intent, 999);
	}
	
	/**
     * ダイアログ生成
     */
    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog = new LoginDialog(this).create();
        dialog.setCanceledOnTouchOutside(false);
        return dialog;
    }
    
    /**
     * アプリケーション終了時の処理.
     */
    @Override
    protected void onDestroy() {
        super.onDestroy();
        CCSDK.shutdown();
    }

	@Override
	public void onServiceBind(int arg0) {
		try {
            if (!CCSDK.isActivated()) {
                // ログインダイアログを表示
                showDialog(0);
            }
            else
            {
                SharedPreferences pref2 = this.getApplicationContext().getSharedPreferences(
                        "SDKSample2",
                        Context.MODE_PRIVATE);
                // 認証済みの場合は設定を保存する。
                Editor prefedit = pref2.edit();
                prefedit.putBoolean("Activation", true);
                prefedit.commit();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
		initView();
	}
	
	protected void initView(){
		
	}
	
	@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // インストールチェックOK
        if (resultCode == RESULT_OK) {
            // CCSDK開始処理
            CCSDK.startup(getApplicationContext(), this);
            return;
        }else if(resultCode == CCServiceInstallActivity.RESULT_MEDIA_REMOVED){
            Toast.makeText(getApplicationContext(), "SDカードがマウントされていない為、認証アプリのインストールに失敗しました。",
                    Toast.LENGTH_LONG).show();
        }else if(resultCode == CCServiceInstallActivity.RESULT_NG){
            Toast.makeText(getApplicationContext(), "ネットワークの設定不備またはSDカードの空き容量が不足している為、認証アプリのインストールに失敗しました。",
                    Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(), "認証アプリのインストールをキャンセルしました",
                    Toast.LENGTH_SHORT).show();
        }
    }
}
